package com.cim.utils
{
	import com.cim.model.ClasificadorNaranjas;
	import com.cim.model.Naranja;

	public class NaranjaFactory
	{
		static public var TAMANIO_TANDA : int = 10;
		static public var DIAMETRO_MIN : Number = 0.1;
		static public var DIAMETRO_MAX : Number = 0.3;
		static public var PESO_MIN : Number = 0.1;
		static public var PESO_MAX : Number = 0.3;
		static public var COLOR_NARANJA : uint = 0xFF6103;
		static public var COLOR_MARRON : uint = 0x8B2500;
		static private var clasificador:ClasificadorNaranjas = new ClasificadorNaranjas();
		
		public static function makeTandaNormal(cantidad:uint):Array{
			var naranjas:Array = new Array();
			for (var i:Number=0; i < cantidad; i++){
				var peso:Number = randomValue(PESO_MIN, PESO_MAX);
				var diametro:Number = randomValue(DIAMETRO_MIN, DIAMETRO_MAX);
				var naranja:Naranja = new Naranja(peso, diametro, COLOR_NARANJA);
				naranja.setClase(clasificador.clasificar(naranja));
				naranjas.push(naranja);
			}
			return naranjas;
		}
		
		public static function makeTandaDefectuosa(cantidad:uint):Array{
			var naranjas:Array = new Array();
			for (var i:Number=0; i < cantidad; i++){
				var peso:Number = randomValue(0.03, DIAMETRO_MIN);
				var diametro:Number = randomValue(0.03, 0.5);
				var naranja:Naranja = new Naranja(peso, diametro, COLOR_MARRON);
				naranja.setClase(clasificador.clasificar(naranja));
				naranjas.push(naranja);
			}
			return naranjas;
		}
		
		private static function randomValue(minNum:Number, maxNum:Number):Number
		{			
		  return (Math.random() * (maxNum - minNum) + minNum);
		}
	}
}

